package com.aoxiang.zbox.service;

import com.aoxiang.zbox.model.dto.LabelDTO;
import com.aoxiang.zbox.model.entity.Label;
import com.aoxiang.zbox.model.vo.SimpleLabelVO;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;

public interface LabelService extends IService<Label> {
    /**
     * 创建标签
     *
     * @param labelDto
     * @return java.lang.Long
     * @author aoxiang
     * @create 2025/3/8
     **/
    Long createLabel(LabelDTO labelDto);

    void updateById(LabelDTO labelDto);

    /**
     * 查询全部标签
     *
     * @param
     * @return java.util.List<com.aoxiang.zbox.model.vo.SimpleLabelVO>
     * @author aoxiang
     * @create 2025/3/8
     **/
    List<SimpleLabelVO> getAllSimple();

    List<SimpleLabelVO> getShownSimple();

    /**
     * 添加展示的标签
     *
     * @param id
     * @return void
     * @author aoxiang
     * @create 2025/3/8
     **/
    void addShow(Long id);

    /**
     * 更新展示标签排序
     *
     * @param ids
     * @return void
     * @author aoxiang
     * @create 2025/3/8
     **/
    void updateShowSort(List<Long> ids);

    /**
     * 更新完成任务标签排序
     *
     * @param ids
     * @return void
     * @author aoxiang
     * @create 2025/3/8
     **/
    void updateCompletedSort(List<Long> ids);

    /**
     * 是否为需要已完成排序标签
     *
     * @param labelId
     * @return boolean
     * @author aoxiang
     * @create 2025/3/15
     **/
    boolean isCompleted(Long labelId);

    /**
     * 添加已完成标签
     *
     * @param labelId
     * @return void
     * @author aoxiang
     * @create 2025/3/15
     **/
    void addCompletedSort(Long labelId);
}
